package com.sikaryofficial.backend.domain.vo.export;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.converters.date.DateStringConverter;
import com.sikaryofficial.backend.service.evaluate.export.StatusIntegerStringConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

import static com.sikaryofficial.backend.constant.ProductConstant.CONTENT_ROW_HEIGHT;

/**
 * 品牌口味评价导出对象
 *
 * @author qinjinyuan
 * @date 2023-10-30
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ExcelIgnoreUnannotated
@ContentRowHeight(CONTENT_ROW_HEIGHT)
@ApiModel(value = "品牌口味评价导出对象", description = "品牌口味评价导出对象")
public class BrandTasteEvaluateExportVO {
    @ColumnWidth(16)
    @ExcelProperty(value = "序号", index = 0)
    private Integer seqNo;

    @ApiModelProperty(value = "用户ID")
    @ColumnWidth(16)
    @ExcelProperty(value = "用户ID", index = 1)
    private Long createdBy;

    @ApiModelProperty(value = "评价人")
    @ColumnWidth(16)
    @ExcelProperty(value = "评价人", index = 2)
    private String createdName;

    @ApiModelProperty(value = "评价时间")
    @ColumnWidth(16)
    @ExcelProperty(value = "评价时间", index = 3, converter = DateStringConverter.class)
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date createdTime;

    @ApiModelProperty(value = "评价内容")
    @ColumnWidth(16)
    @ExcelProperty(value = "评价内容", index = 4)
    private String remark;

    @ApiModelProperty(value = "综合评分(小数)", example = "12.2435")
    @ColumnWidth(16)
    @ExcelProperty(value = "总体评价星级", index = 5)
    private BigDecimal compositeScore;

    @ApiModelProperty(value = "评价对象名称")
    @ColumnWidth(16)
    @ExcelProperty(value = "评价对象名称", index = 6)
    private String productName;

    @ApiModelProperty(value = "状态 0-正常 1-屏蔽 2-举报")
    @ColumnWidth(16)
    @ExcelProperty(value = "状态", index = 7, converter = StatusIntegerStringConverter.class)
    private Integer status;

    @ApiModelProperty(value = "获得点赞数", example = "123")
    @ColumnWidth(16)
    @ExcelProperty(value = "获得点赞数", index = 8)
    private Integer likesCount;
    /**
     * 国家
     */
    @ApiModelProperty(value = "国家")
    @ColumnWidth(16)
    @ExcelProperty(value = "国家", index = 9)
    private String country;
    /**
     * 用户邮箱
     */
    @ApiModelProperty(value = "用户邮箱")
    @ColumnWidth(16)
    @ExcelProperty(value = "用户邮箱", index = 10)
    private String email;

}
